package com.academic.system.repository;

import com.academic.system.model.Paper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 论文Mapper接口
 */
@Mapper
public interface PaperRepository {
    
    /**
     * 根据ID查找论文
     */
    Paper findById(Integer id);
    
    /**
     * 查询创建者的所有论文
     */
    List<Paper> findByCreatorId(Integer creatorId);
    
    /**
     * 根据审核状态查询论文
     */
    List<Paper> findByApprovalStatus(String approvalStatus);
    
    /**
     * 根据创建者ID和状态查询论文
     */
    List<Paper> findByCreatorIdAndStatus(@Param("creatorId") Integer creatorId, @Param("approvalStatus") String approvalStatus);
    
    /**
     * 插入新论文
     */
    int insert(Paper paper);
    
    /**
     * 更新论文信息
     */
    int update(Paper paper);
    
    /**
     * 删除论文
     */
    int deleteById(Integer id);
    
    /**
     * 查询所有论文
     */
    List<Paper> findAll();
    
    /**
     * 统计创建者的论文数量
     */
    int countByCreatorId(Integer creatorId);
    
    /**
     * 统计创建者特定状态的论文数量
     */
    int countByCreatorIdAndStatus(@Param("creatorId") Integer creatorId, @Param("approvalStatus") String approvalStatus);
} 